现在回想一下,Racebug的ACM之路是相当曲折坎坷的,虽然大二出道之时便已两块亚洲铜牌在手,但大三壮志筹筹却两次现场赛铩羽而归让Racebug非常心灰意冷,他也曾经在坚持与否中徘徊过,而身边一度缺乏可靠的队友也曾经让他对之后的ACM之路相当迷茫。但无论如何,Racebug终于坚持了下来,在职业生涯里最后的两次现场赛发挥神勇,先后在魔都和帝都拿下了两块梦寐已久的Asia Silver Medal,或许对很多牛校和一些大牛来说一两块银牌算不上什么,但是对我们学校来说今年的两块亚洲银牌,已经是自从神·Gondar退役以来最好的成绩了,而Racebug也无愧于是HFUT ACM队史上排第二的Carry。下面是Racebug的ACM战绩 ------2009年 ACM-ICPC亚洲区预赛哈尔滨赛区 亚洲铜牌2009年 ACM-ICPC亚洲区预赛合肥赛区 亚洲铜牌2010年 ACM-ICPC亚洲区预赛天津赛区 亚洲铜牌2010年 ACM-ICPC亚洲区预赛杭州赛区 亚洲铜牌2010年 安徽省第一届程序设计大赛 冠军
2011年 ACM-ICPC亚洲区预赛上海赛区 亚洲银牌2011年 ACM-ICPC亚洲区预赛北京赛区 亚洲银牌
在上海,比赛之前,Racebug笑言要是再拿一块铜牌就成“五毒铜子”,再拿两块铜牌就成“六小龄铜”,还跟我和Hi-there说要享受比赛,但是我们每个人都知道Racebug身上背负的压力有多大,这种压力不是什么人给的,而是他自己对于理想的追求而自然产生的。在开赛之前我们早就知道上海一战会非常凶险,且不论上交,浙大,华师,华理等一干牛校几乎是主场作战,尽遣主力上场,单就看命题的复旦神犇g201513-- 2011年Google Code Jam世界第六也可想而知比赛的难度有多大。但没想到实际上比赛的过程却简单,周六的热身赛上我们AK了三道题,为第二天的比赛积累了信心,而正赛的时候,一开场,Racebug读A题,一个背包问题,物品只有两种,但是数据范围是32位int范围之内的,传统dp的O(n*m)的时间复杂度在这道题的数据面前相当无力,Racebug思索片刻后想到了用三分,我当时分析了一下,因为背包容积一定,假设其中一个物品的容积是一个变量,那么第二个物品的容积显然可以由第一种物品推得,那么实际上两个物品就归约到一个变量了,但是整个价值函数虽然是一个一元二次方程,接近于抛物线,但是因为是在整数域上讨论的,三分是有缺陷的,因为实际上这个价值函数是接近于抛物线的锯齿状函数。Racebug自然也知道这点,但还是勇敢的交了一次代码,结果获得了全场第一个WA。Racebug这时觉得在整数域上的由三分产生的空隙很难处理,想换一种算法,但是我觉得肯定就是三分了,跟他说只要处理掉三分的空隙就行了。此时Racebug的神来之笔出现了,稍作改进,三分后枚举,用最暴力也是最简单的方法排除空隙,第一次设的枚举范围是500000,结果返回TLE,第二次改为100000后,伴随着Racebug的响指,YES!73分钟A题3Y。本以为这只是我们队正常比赛的开始,结果我们怎么也没想到最后我们队居然就只凭借这一道题,拿下了亚洲银牌,而整场比赛冠军清华也只有区区4道题,这次比赛毫无疑问创造了1996年ACM进入大陆以后现场赛题目难度的记录,就算在历年world final中,也没出现过清华和上交都只做出4题的局面。之后Racebug码了近两个小时的G题计算几何最后没有成型,在他码到一半的时候我就感觉不对劲,一边在码一边在想,显然是还没想好就开始敲代码了,应该是A题心切吧。而I题Fibonacci高精度问题因为原先Racebug听闻现场赛不可以打表结果我只用Java敲了个Fibonacci的生成函数估算了下时间就没敢继续敲下去,而Hi-there受制于比赛时间以及“一指禅”的原因,在最后时刻冲刺Racebug放弃的计算几何也没成功。而实际上复旦赛前的无模板题、无废题、无恶搞题的“三无”承诺只兑现了第一个,CDJ三题全场无人AC,BEH分别只有1、2、1个队AC,差点是6道废题,而整套题都充斥着恶搞的成分,某些题如I题等都无算法可言。最后的颁奖典礼我们和教练石雷老师都战战兢兢,颁铜牌的时候Racebug还把哈工大的“哈”看成“合”字,吓得一身冷汗,最终颁完铜牌,没有合肥工业大学,我和Racebug还有Hi-there都激动地抱在了一块。最终HFUT_threeMusketeers很匪夷所思地以一题在高手如林的上海拿下了银牌,我犹记得当时若干个队看到我们以这种方式拿下银牌时那种愤恨与羡慕的眼神。这时我也深知Racebug的这块银牌来的有多么不容易,为了这块银牌,单就今年暑假,Racebug就连着拒绝了金山网络和阿里巴巴两家国内IT巨头的实习邀请,相比之下他大二时为了打比赛放弃了期中考试倒显得不算那么霸气了。